The present invention relates to a database system into which information is stored as data made up of category names, title names, and the substantial contents, and more particularly to a system into which information belonging to all categories is stored in an extremely simple table structure and managed by small-scale software, which can be applied as an online database enabling storage and viewing from a client.
With widespread use being made of information devices such as personal computers and a fleshing out of online services via networks such as the Internet, the last few years have seen a dramatic increase in the number and variety of databases available.
In the past, database models have included network, hierarchal, relational, and object-oriented types, with the relational database (hereinafter referred to as the RDB) being the most widely used at present, and the object-oriented database (hereinafter referred to as the OODB), formed by introducing object orientation into a database system, being used as the main method for software development, the development and implementation of which are being actively pursued.
The implementation of object relational databases (hereinafter referred to as the ORDB), formed by introducing objection orientation into the RDB, is also being actively pursued.
The RDB, as the term is used herein, refers to representation of data by tables made up of rows and columns and the relationships between each table, the table representation of data facilitating an understanding of the data model structure, making the design thereof relatively simple.
In the RDB, normal forms are used to reduce data redundancy (that is, reduce the duplication of data) and to simplify lookup and updating, by using a table structure free from such waste. In the past, several standard normal forms have been proposed (the Codd first to third normal form, the Boyce/Codd extended third normal form, and the fourth normal form by R. Fagin and so on), and it is possible to obtain the most efficient table structure based on these standards.
Additionally, SQL (Structured Query Language) has become the standard access language, this having the advantage of enabling extraction of data without coding a procedure via an engine that interprets SQL statements.
On the other hand, in the OODB, objects, which encompass data and the associated procedures (methods), are the subject of management, with the program being coded for the exchange of instructional commands and data (messages) between objects.
Objects of one and the same type are grouped into a class (abstractly defined in terms of functions and attributes common to the objects), with an upper-order class method being inherited by a lower-order class.
In the OODB, there is a large number of data structure types, and by encapsulating the data and methods as noted above it is possible to achieve an operating environment in which the data is treated directly in the same easy-to-understand manner as would real objects, this special feature being that it is now possible to store not only characters and values, but also to store images and sounds. Object-oriented languages include such languages as C++, Smalltalk, and Java.
In the RDB, although the table structure is designed in accordance with conforming to the above-noted standard of normal forms, these standards are merely a system of logic, with actual tasks being performed sequentially while graphing a large number of individual file groups, thereby rendering the design of a table structure extremely complex and troublesome, and requiring the expenditure of a great amount of time and labor.
In a database handling a wide range of information, there is an extremely large number of table groups, and it is necessary to manage each table group individually. Additionally, in the operating process, if there is a change in an item or the like of one table, it is often necessary to make a change to related tables and programs, the resulting editing task also, as noted-above, being extremely difficult.
In the case of the OODB, because data and methods with regard to individual stored information are encapsulated in objects, in the case, for example, of a change made to items or data in a company employee database, it is necessary to open the object of each employee and make successive changes, and when this is associated with a method, it is necessary to do an in-depth study of whether an inheriting class would be influenced, the result usually being that it is necessary to perform more complex and difficult re-editing of the program than would have been involved with the RDB.
Stated differently, although the OODB is directed at achieving a user interface for efficient operation, and provides efficient programming at the point at which a method is inherited, it requires a high level of experience with regard to storage and management of individual objects, and programming of messages, and when a large amount of data is involved, the amount of work required for maintenance of the OODB becomes much greater than the work required by the RDB.
With regard to the ORDB, which is basically a hybrid of the RDB and the OODB, because its configuration is more complex, it is accompanied by the same problems as the RDB or the OODB.
Accordingly, it is an object of the present invention to provide a highly functional database, which has only an extremely simplified table structure and handles the storage of any category of information, enabling efficient execution of the essential database functions of entry, storage, retrieval, and output of data using small-scale software, and further enabling the implementation of a database system providing extreme flexibility and simplicity in making changes to an item associated with stored information, solving the above-described problems associated with the RDB and the OODB, and providing economical implementation and operation.
A database system according to the present invention enables free interactive storage of information from a client via a communication line such as the Internet, without the intervention of a programmer, and further provides the same level of user interface convenience as would be provided by the OODB.
The first invention is a database system, while managing category names, which are abstract contents of registered information (phenomena or things), and the hierarchy thereof by a data dictionary file, registers category name, individual title name, and substantial contents of each piece of information being registered, wherein the above-noted system comprising a first table and a second table, which are formed by data cells, and in the above-noted first table, category identification information given by the above-noted data dictionary file is stored in a data cell of a specific column, and names of items which represent an attribute and/or a function associated with the category and attributes of data representing the substantial contents associated with the above-noted items (hereinafter referred to as item data attributes) are stored in other cells, each belonging to a row in which the above-noted category identification information is stored, and in the above-noted second table, category identification information and a title name are stored in each cell of two specific columns, the substantial contents associated with each item name being stored in other data cells, each belonging to a row in which category identification information and title names are stored, in the same sequence with regard to item names as the row-direction sequence of data cells into which are stored item names and item data attributes in the above-noted first table, and each method for input, storage, searching, and output of data associated with registered information being generated based on data stored in the above-noted first table.
In this first invention, data of registered information belonging to all categories is managed using two tables having a simple structure.
In the first table, category identification information and xe2x80x9citem names and item data attributesxe2x80x9d associated with that category are stored into each data cell in units of rows, and in the second table category identification information, title names, and substantial contents associated with each of the item names of the information are stored into each data cell in units of rows, both of the stored data being associated by the category identification information, and the xe2x80x9citem names and item data attributesxe2x80x9d and xe2x80x9csubstantial contents associated with the each item namexe2x80x9d being associated by the item names, in the row direction sequence of each data cell.
The first table is a virtualization of the xe2x80x9csubstantial contents associated with each item namexe2x80x9d of the second table, in the data format of xe2x80x9citem names and item data attributes,xe2x80x9d and based on this virtual nature, it is possible to store and manage data of registered information belonging to all categories in a single second table.
Additionally, based on the properties of the xe2x80x9citem data attributes,xe2x80x9d it is possible to generate each method for the execution of each function (i.e. input, storage, searching, and output) which is indispensable for the database system by merely providing a single process control program to the each function.
That is, in contrast to a database system of the past, in which the configuration was one having a large number of tables related in a complex manner, with separate read/write programs corresponding to each control program for executing each of the above-noted functions, or various joint programs which take into consideration the inter-table relationships, thereby requiring a very large program, with the present invention it is possible to implement the same type of database system with an extremely simplified table structure and a small program only.
Seen in terms of operation, the above-noted first invention enables the configuration of the following second invention.
The second invention, comprising: a first storage means into which is stored a first registration screen onto which are disposed an input field for a category name, which is an abstract concept of handled information, an input field for each item name representing an attribute and/or a function associated with the above-noted category, and an input field for defining item data attributes for each item associated with the above-noted item names; a first display means for reading out and displaying a first registration screen of the above-noted first storage means; a first table formed by data cells; a first registration means, which uses data cells of a specific column of the above-noted first table as a storage area for category identification information given by the above-noted data dictionary file and assigns each data cell of the other column as a storage area for item names and item data attributes, and which, based on input into the above-noted each input field of the above-noted first registration screen, registers the above-noted category identification information, item names, and item data attributes in units of rows; a second display means for displaying a second registration screen, which generates a display method based on row-direction data associated with the above-noted category name of the above-noted first table, and on which is disposed an input field for a title name associated with the above-noted registered information, a display field for display of each item name, and an input field for substantial contents associated with each item name; a second table formed by data cells; a second registration means, which uses each data cell of two specific columns of the above-noted second table as storage areas for category identification information and title names and assigns each data cell of other columns as a storage area for substantial contents associated with the above-noted item names, and which, based on input into each input field in the above-noted second registration screen, stores category identification information, title name, and substantial contents associated with each item name in units of rows, this storage being performed so that row-direction sequence of the above-noted each data cell into which the above-noted substantial contents associated with each item name is stored is the same with regard to item names as a row-direction sequence of each data cell in the above-noted first table, into which are stored item names and item data attributes; a data output means, which, in a case in which an inquiry is made with various conditions, based on data registered in the above-noted first table associated from the above-noted data dictionary file, generates an access method for the above-noted second table and an output method for registered data obtained by that access method, these methods causing output of registered data in response to the above-noted inquiry.
In the second invention, the first storage means and the first display means, by displaying the first registration screen, which corresponds to a guidance screen, cause input of the category name, the item names, and item data attributes for each of the item names.
The first registration means, based on the input from the first registration screen, causes storage of input data in units of rows into each data cell of the first table, and virtualizes the xe2x80x9csubstantial contents associated with each item namexe2x80x9d of the second table, in the data format of xe2x80x9citem names and item data attributes.xe2x80x9d
The second display means displays a second registration screen, which corresponds to a guidance screen for the purpose of inputting the title name, item names, and substantial contents for each item name of information to be registered. In this case, the second display means, based on the table configured with data that virtualizes the first table, can generate a display method for the second registration screen from the row-direction data associated with that category identification information.
Data registered in the first table, therefore, serves the role of defining the display conditions for the second registration screen by the second display means.
The second registration means, based on input to the second registration screen, causes storage into each data cell of the second table of the above-noted category identification information and the input data, in units of rows.
The correspondence between the first table registered data and the second table registered data is set as described with regard to the first invention.
Therefore, the data registered in the first table serves the role of defining for the second registration means the conditions for storage of substantial contents for each individual item name associated with registered information.
The data output means receives an inquiry directed at registered information in the database system.
The inquiry conditions include various conditions, such as searching using a category name or title name as a key, searching using substantial contents associated with an item name as a key, and searching with further narrowing of the scope of substantial contents, i.e., registered data of the first table with association to a data dictionary file responsive to the searching conditions being determined, this registered data being used to generate an access method for the second table, and in the case in which the recorded data of interest is to be output, an output method is generated based on the data registered in the first table.
Data registered in the first table, therefore, serves the role of defining searching conditions and outputting conditions for the data output means.
As described above, the second invention performs registration of data into the first table and into the second table, while providing the first registration screen and the second registration screen as guidance screens, enabling management (entry, storage, searching, and output) of data using these two tables, this being made possible by the above-noted virtual nature of the first table. This virtual nature functions effectively as well in the generation of the second registration screen.
Stated differently, in contrast to a database of the past, in which in the case in which it was necessary to register a new category, a programmer performed design of a complex table structure and generation of a very large program, according to the present invention, a category name, item names, and item data attributes for each item name are input beforehand, following guidance, after which a simple procedure of following guidance in registering a title name, item names, and substantial contents for each item name is performed, with subsequent individual instructions with regard to entry, storage, searching and output, being handled as if a program were being automatically developed and driven in real time, thereby achieving what could be called a xe2x80x9cvirtual object-orientedxe2x80x9d database system.
In the above-noted first and the second inventions, by providing a data type as a defined item of data attributes, it is possible to execute the above-noted functions of entry, storage, searching and output, and it is further desirable to provide data size as an additional attribute.
In the case in which the data size is not defined, there are many cases in which there is a difference between the amounts of data in the substantial contents for each item name of data to be registered into the second table, and if the data cell capacity is set to the maximum value thereof, a large amount of memory capacity is wasted.
Given the above, if the data size is defined as noted above, and it is made possible to vary the setting of the required capacity for each data cell in the second table, it is possible to solve this problem.
For one and the same category, it can be known empirically that the amount of data for the substantial contents of each item name is almost the same.
In addition to the above-noted data type and data size, if it is made possible to specify units and a range, it is possible to properly represent any attribute or function associated with each item of each phenomenon or event existing in the natural world, thereby not only simplifying the registration process, but also broadening the scope of content that can be registered.
Next, if a selection menu is provided for the above-noted data types for character, value, date, image, and audio, it is possible to comprehensively cover the representations of substantial contents for each item name.
In addition to these basic data types, if a selection menu is provided for independent data types for data obtained by linking to another application and/or to another system, it is possible to freely capture and register various data existing outside the system, enabling use as a data warehouse and configuration of a distributed database.
In the second invention, although the capacity of the data cells of the second table, as noted above, can be made variably settable based on data attributes defined by the first table, in the case in which the type of the substantial contents associated with an item name is input as image or audio and so on, the amount of data is much greater than the case of character or date data types.
On the other hand, because of the system characteristics, there could be a limitation to the capacity of a data cell in the second table, and from the standpoint of data management as well, it is not desirable to have a great difference in capacity between individual data cells of a table.
Given the above, in such cases, if the substantial contents data is stored in a separately provided large-capacity second storage means, and only the addresses of the data stored in the second storage means are stored in the data cells of the second table, it is possible to solve the above-noted problem.
In the second invention, if the first storage means stores the first registration screen provided with input fields in display sequence corresponding to the input fields for input of each item name, and the first registration means adds each input display sequence to the item data attributes corresponding to each item name, storing this in each data cell of the first table, and the data output means generates an output method, on which the display sequence for the substantial contents associated with each item name is set, based on the display sequence associated with the above-noted input, it is possible to arbitrarily set the display sequence for substantial contents associated with the item names, so that when displaying the information resulting from a search, it is not only possible to perform uniform registered information output, but also to perform output with a display screen layout that is suitable to the category.
The third invention relates to a configuration in which the second invention is applied as an online database system.
In this invention, in response to a connection request sent via a network from a client, a circuit connection is made with the client, and in response to a client-side registration request, the above-noted first registration screen generated by the above-noted first display means is provided to the client-side, and based on transmission of input data to the above-noted first registration screen by the client-side, the input data is registered into the above-noted first table, and based on the above-noted registered data associated with the above-noted category identification information of the above-noted first table, the above-noted second registration screen generated by the above-noted second display means is provided to the client-side, and based on transmission of input data to the above-noted second registration screen by the client-side, the input data is registered into the above-noted second table, and, based on an inquiry from a client-side, various inquiry screens prepared beforehand are provided to the client-side, and in response to inquiry condition input to the screen, the above-noted data output means provide the registered data of the above-noted second table to the client-side.
In the above-noted case, in contrast to an online database of the past, which only had viewing and searching functions via a network, this invention makes it possible to perform database registration of information of any category extremely simply, while receiving online guidance.